#include<bits/stdc++.h>
using namespace std;

class Solution {
public:
    long long subArrayRanges(vector<int>& nums) {
        long long ans = 0;
        for(int i = 0; i < nums.size(); i++){
            int minVal = INT_MAX, maxVal = INT_MIN;
            for(int j = i; j < nums.size(); j++){
                minVal = min(minVal, nums[j]);
                maxVal = max(maxVal, nums[j]);
                ans += maxVal - minVal;
            }
        }
        return ans;
    }
};

/**
 * @brief 2022.4.11
 * 暴力 O(n^2)，注意 minVal 和 maxVal 的更新，在数组范围扩大时可以保证两值的正确，但缩小时不能保证。
 */